import java.util.Random;

public class test {
    public static void main(String[] args){
        Comparable[] a;
        a = new Comparable[50];
        Random rand = new Random(15);
        for (int i = 0; i < 50; i++) {
            a[i] = rand.nextInt(500);
        }

//        show(a);
        long time_start = System.currentTimeMillis();

//         插入排序
//        Insertion.sort(a);
//         归并排序（自顶向下）
//         Merge.sort(a);
//         归并排序（自顶向下）（第三种优化方法）
//         MergeUpdate_3.sort(a);
//         归并排序（自底向上）
//         MergeBU.sort(a);
//         选择排序
//         Selection.sort(a);
//         希尔排序
//         Shell.sort(a);
//        快速排序
//        Quick.sort(a);
//        三向切分的快速排序
//        Quick3way.sort(a);
//        冒泡排序
//        Bubble.sort(a);
//        堆排序
        HeapSort.sort(a);

        long time_end = System.currentTimeMillis();
        show(a);

        System.out.println(time_start);
        System.out.println(time_end);
        System.out.println();
        System.out.println(time_end - time_start);
    }

    public static void show(Comparable[] a){
        for(int i = 0; i < a.length; i++){
            System.out.print(a[i] + ",");
        }
        System.out.println();
    }
}
